/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.lujotar.web;

import com.lujotar.ejb.CanjeoFacade;
import com.lujotar.ejb.ClienteFacade;
import com.lujotar.ejb.MovimientoFacade;
import com.lujotar.ejb.TarjetaFacade;
import com.lujotar.entities.Canjeo;
import com.lujotar.entities.Movimiento;
import com.lujotar.entities.Tarjeta;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
 *
 * @author RamiroHenao
 */
@ManagedBean
@RequestScoped
public class TarjetaManagedBean {

    private Tarjeta tarjeta = new Tarjeta();
    
    @EJB
    private TarjetaFacade tarjetaFacade;
    @EJB
    private CanjeoFacade canjeoFacade;
    @EJB
    private MovimientoFacade movimientoFacade;
    @EJB
    private ClienteFacade clienteFacade;
    
    private String idBusqueda;

    public String getIdBusqueda() {
        return idBusqueda;
    }

    public void setIdBusqueda(String idBusqueda) {
        this.idBusqueda = idBusqueda;
    }
    
    
    /**
     * Creates a new instance of TarjetaManagedBean
     */
    public TarjetaManagedBean() {
    }
    
    public List<Tarjeta> getSaldoTarjetas(){
        List<Tarjeta> tarjetas = new ArrayList<Tarjeta>();
        try{
            tarjetas = tarjetaFacade.consultarTarjetaId(idBusqueda);
        }catch(Exception exc){}
        for(int idx=0; idx < tarjetas.size(); idx++){
            int saldoTarjeta = 0;
            tarjetas.get(idx).setIdCliente(clienteFacade.consultarClienteId(""+tarjetas.get(idx).getIdCliente().getId()));
            List<Movimiento> movimientos = movimientoFacade.consultarMovimientoTarjeta(tarjetas.get(idx));
            tarjetas.get(idx).setMovimientoList(movimientos);
            for(int idy=0; idy<movimientos.size(); idy++){
                saldoTarjeta += movimientos.get(idy).getPuntos().intValue();
            }
            List<Canjeo> canjeos = canjeoFacade.consultarCanjeoTarjeta(tarjetas.get(idx));
            tarjetas.get(idx).setCanjeoList(canjeos);
            for(int idy=0; idy<canjeos.size(); idy++){
                saldoTarjeta -= canjeos.get(idy).getPuntos().intValue();
            }
            tarjetas.get(idx).setSaldoTarjeta(saldoTarjeta);
        }
        return tarjetas;
    }
    
    public Tarjeta getTarjeta() {
        return tarjeta;
    }

    public void setTarjeta(Tarjeta tarjeta) {
        this.tarjeta = tarjeta;
    }
    
    public String anularTarjeta() {
        tarjeta = tarjetaFacade.consultarTarjetaId(tarjeta.getId().toString()).get(0);
        tarjeta.setEstado("ANULADA");
        tarjetaFacade.anularTarjeta(tarjeta);
        return "/maestros/tarjetas/lista_tarjetas";
    }
    
    public List<Tarjeta> listaTarjetas(){
        return tarjetaFacade.consultarTarjetas();
    }
}
